<!DOCTYPE html>
<html lang="en">
<!-- 自组件一般都是向父组件传递一个事件（自定义事件）
    再让父组件去请求数据
    -->
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="hello">
        <!-- 
            <cpn @ziDingYiShiJian='shoudao'></cpn> 
            props和自定义事件都不要用驼峰
        -->

        <!-- 3.shoudao不写括号 默认会把子组件传来的参数传递过去 -->
        <cpn @zidingyishijian='shoudao'></cpn>
    </div>
    <template id="temp">
        <div>
            <!-- 1.让子组件知道那个按钮被点击了 -->
           <button v-for="item in categories" :key="item.id" @click='btnclick(item.id)'>{{item.name}}</button>
        </div>
    </template>
    <script src="../../vue.js"></script>
    <script>
        let cpn = {
            template:'#temp',
            data() {
                return {
                    categories:[
                        {id:1,name:'手机数码'},
                        {id:2,name:'雪鞋箱包'},
                        {id:3,name:'摩托罗拉'},
                        {id:4,name:'奥迪双钻'},
                    ]
                }
            },
            methods: {
                btnclick(itemId){
                    //2.发射事件 把这个事件和传进来的参数一起发送给父组件
                    this.$emit('zidingyishijian',itemId);
                }
            },
        }
        const vue01 = new Vue({
            el: '#hello',
            components:{
                cpn,
            },
            methods:{
                shoudao(item){
                    //4.这里的item就是子组件传来的itemId
                    // 处理子组件发过来的请求 
                    console.log(item+'被点击了')
                }
            }
        })
    </script>
</body>

</html>